var express = require('express');
var router = express.Router();
var md5 = require('md5');

router
    .post('/', function (req, res, next) {
        // 判断请求中是不是有账号密码
        if (req.body.mobile && req.body.password) {
            // 如果有账号密码，说明是登陆页发来的请求，就跳到账号密码登录
            next();
        } else {
            // 如果没有账号密码说明是 首页 发来的请求，需要判断 session

            // 逻辑 => 判断是否有 session ，有就返回 session 登录，没有就报错
            var session = req.session.login_data;
            if (typeof session === 'object' && session !== null && !(session instanceof Array)) {
                // 如果 session 是对象，就返回 session
                res.json(session);
            } else {
                res.json({
                    "type": "error",
                    "msg": "抱歉没有session"
                });
            }
        }
    }, async function (req, res, next) {
        // 需要拿到请求里面的数据去数据库进行比对
        // 获取 model
        var UserModel = require('./userModel').UserModel;
        // 数据库进行比对
        var data = await UserModel.find({
            mobile: req.body.mobile,
            password: md5(req.body.password)
        });
        // console.log(data);
        if (data.length >= 1) {
            // 数据库里有这条数据，则判定登录成功
            // 我们设置 session 
            // 注意 查询数据库的返回值是数组，我们需要把对应的数据取出来
            req.session.login_data = data[0];
            req.session.save(function (err) {
                if (err) {
                    res.json({
                        "type": "error",
                        "data": "session保存错误！"
                    });
                } else {
                    res.json({
                        "type": "success",
                        "msg": "登录成功"
                    });
                }
            });

        } else {
            res.json({
                "type": "error",
                "msg": "账号或密码有误，请重新登录！"
            });
        }
    })






module.exports = router;